/* Site-native AI itinerary modal. The old expanding floating form was intentionally removed. */
:where(.ai-itinerary, .ai-itinerary *) { box-sizing: border-box; }

body.ai-itinerary-modal-open { overflow: hidden; }

.ai-itinerary {
  position: fixed;
  inset: 0;
  z-index: 150;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 180ms ease, visibility 0s linear 180ms;
}

.ai-itinerary.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.ai-itinerary__scrim {
  position: absolute;
  inset: 0;
  background: rgba(12, 26, 20, 0.76);
  backdrop-filter: blur(7px);
}

.ai-itinerary__form {
  position: relative;
  width: min(100%, 720px);
  display: grid;
  grid-template-columns: 1.08fr 1fr 1fr auto;
  gap: 0.7rem;
  align-items: end;
  border: 1px solid rgba(229, 192, 39, 0.58);
  border-radius: 0;
  background: #fdfaf6;
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.38);
  padding: clamp(1.15rem, 3vw, 1.85rem);
  transform: translateY(1rem) scale(0.98);
  transition: transform 220ms cubic-bezier(.2, .8, .2, 1);
}

.ai-itinerary.is-open .ai-itinerary__form { transform: translateY(0) scale(1); }

.ai-itinerary__powered {
  grid-column: 1 / -1;
  display: block;
  margin-bottom: 0;
  color: var(--logo-green, #006b3f);
  font: 700 0.74rem/1.2 "Google Sans", Arial, sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ai-itinerary__title {
  grid-column: 1 / -1;
  margin: -0.25rem 2.5rem 0.2rem 0;
  color: var(--charcoal, #2b2926);
  font: 400 clamp(2rem, 5vw, 3.25rem)/0.95 "Special Gothic Condensed One", Impact, sans-serif;
  letter-spacing: 0.015em;
  text-transform: uppercase;
}

.ai-itinerary__field { display: grid; gap: 0.38rem; min-width: 0; }

.ai-itinerary__field span {
  color: var(--charcoal, #2b2926);
  font: 700 0.68rem/1 "Google Sans", Arial, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ai-itinerary__field input {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(43, 41, 38, 0.25);
  border-radius: 0;
  background: #fff;
  color: var(--charcoal, #2b2926);
  padding: 0.75rem 0.8rem;
  outline: none;
  font: 500 0.92rem/1.2 "Google Sans", Arial, sans-serif;
}

.ai-itinerary__field input:focus { border-color: var(--green, #458962); box-shadow: 0 0 0 3px rgba(69, 137, 98, 0.16); }

.ai-itinerary__submit {
  min-height: 48px;
  border: 1px solid var(--logo-green, #006b3f);
  border-radius: 0;
  background: var(--logo-green, #006b3f);
  color: #fff;
  cursor: pointer;
  padding: 0.75rem 1rem;
  font: 700 0.75rem/1 "Google Sans", Arial, sans-serif;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  transition: background 160ms ease, transform 160ms ease;
}

.ai-itinerary__submit:hover, .ai-itinerary__submit:focus-visible { background: var(--green, #458962); transform: translateY(-2px); outline: 0; }
.ai-itinerary__submit-compact { display: none; }
.ai-itinerary__submit-expanded { display: inline; }

.ai-itinerary__close {
  position: absolute;
  top: 0.72rem;
  right: 0.72rem;
  width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(43, 41, 38, 0.24);
  border-radius: 50%;
  background: transparent;
  color: var(--charcoal, #2b2926);
  cursor: pointer;
  font: 400 1.5rem/1 Arial, sans-serif;
}

.ai-itinerary__close:hover, .ai-itinerary__close:focus-visible { border-color: var(--logo-green, #006b3f); color: var(--logo-green, #006b3f); outline: 0; }

.ai-itinerary__status {
  grid-column: 1 / -1;
  min-height: 1.1em;
  margin: 0.2rem 0 0;
  color: var(--logo-green, #006b3f);
  font: 600 0.82rem/1.3 "Google Sans", Arial, sans-serif;
}

.ai-itinerary.is-loading .ai-itinerary__form { cursor: wait; }
.ai-itinerary.is-loading .ai-itinerary__form > * { opacity: 0.64; pointer-events: none; }
.ai-itinerary.is-loading .ai-itinerary__status { opacity: 1; }

.floating-itinerary-trigger {
  position: fixed;
  right: calc(clamp(1.5rem, 4vw, 2.5rem) + 48px + 0.7rem);
  bottom: clamp(1.5rem, 4vw, 2.5rem);
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: min(226px, calc(100vw - 1.3rem));
  height: 48px;
  overflow: hidden;
  border: 1px solid rgba(229, 192, 39, 0.82);
  border-radius: 999px;
  background: var(--logo-green, #006b3f);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.26);
  color: #fffaf2;
  cursor: pointer;
  padding: 0;
  font: 800 0.74rem/1 "Google Sans", Arial, sans-serif;
  letter-spacing: 0;
  text-transform: uppercase;
  transition: width 220ms ease, background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.floating-itinerary-trigger:hover,
.floating-itinerary-trigger:focus-visible {
  width: min(226px, calc(100vw - 1.3rem));
  background: var(--green, #458962);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.32);
  outline: 0;
}

.floating-itinerary-trigger__icon { flex: 0 0 46px; width: 46px; font-size: 1.1rem; }

.floating-itinerary-trigger__label {
  min-width: max-content;
  padding: 0 1.35rem 0 0.25rem;
  opacity: 1;
  transform: translateX(0);
}

@media (max-width: 720px) {
  .ai-itinerary__form { grid-template-columns: 1fr; gap: 0.85rem; padding-top: 3.6rem; }
  .ai-itinerary__powered, .ai-itinerary__title, .ai-itinerary__status { grid-column: auto; }
  .ai-itinerary__submit { width: 100%; }
  .floating-itinerary-trigger {
    right: calc(1.25rem + 42px + 0.6rem);
    bottom: 1.25rem;
    width: min(204px, calc(100vw - 1.3rem));
    height: 42px;
  }
  .floating-itinerary-trigger:hover,
  .floating-itinerary-trigger:focus-visible { width: min(204px, calc(100vw - 1.3rem)); }
  .floating-itinerary-trigger__icon { flex-basis: 40px; width: 40px; font-size: 1rem; }
}
